﻿#ifndef __TES_LINE_INTERPOLATION_H__
#define __TES_LINE_INTERPOLATION_H__

#include <vector>
#include "TesVector3.h"
#include "TesLinespace.h"
#include "TesInterpolation.h"

class TesLineInterpolation : public TesInterpolation
{
    struct Internal
    {
        //其实长度
        float start;

        //本段长度
        float distance;

        //线段
        TesLinespace<TesVector3> line;
    };

    //记录下一次查找的子线段的下标
    size_t findIdx; 

    //上一次取点的坐标                       
    float lastPos;                         

    //所有的线段
    std::vector<Internal> datas;

public:

    //构造函数
    TesLineInterpolation();

    //添加点
    void SetPoints(const std::vector<TesVector3>& points);

    //获取点
    TesVector3 GetPoint(float distance);

    //直结束了
    bool IsEnd();

    //总长度
    float Length();

    //重置
    void Reset();
};


#endif